﻿using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Ordens.Communication;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
    public class TranslatorEnumTipoMercado
    {
        public void TranslateEnum(Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado? from, out Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado to)
        {
            to = new Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado();

            switch (from)
            {
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Vista:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Vista;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.OpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.OpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.ExercicioOpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.ExercicioOpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Fracionario:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Fracionario;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Estruturado:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Estruturado;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Leilao:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Leilao;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Termo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Termo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.LeilaoNaoCotados:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.LeilaoNaoCotados;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.Futuro:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Futuro;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.VencimentoFuturo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.VencimentoFuturo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.BOX:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.BOX;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.IntegralizacaoResgateCotas:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.IntegralizacaoResgateCotas;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.CotasETF:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.CotasETF;
                    break;
                //Nemir informou que não existe este mercado
                //2009-01-12 - RValadao
                //case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado.OpcaoVendaCompra:
                //    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVendaCompra;
                //    break;
            }
        }

        public void TranslateEnum(Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado? from, out Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado to)
        {
            to = new Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado();

            switch (from)
            {
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Vista:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Vista;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.ExercicioOpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.ExercicioOpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Fracionario:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Fracionario;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Estruturado:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Estruturado;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Leilao:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Leilao;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Termo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Termo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.LeilaoNaoCotados:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.LeilaoNaoCotados;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Futuro:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Futuro;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.VencimentoFuturo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.VencimentoFuturo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.BOX:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.BOX;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.IntegralizacaoResgateCotas:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.IntegralizacaoResgateCotas;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.CotasETF:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.CotasETF;
                    break;
                //Nemir informou que não existe este mercado
                //2009-01-12 - RValadao
                //case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoVendaCompra:
                //    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVendaCompra;
                //    break;
            }
        }

        public void TranslateEnum(Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado? from , out Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado?   to)
        {
            to = null;

            switch (from)
            {
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Vista:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Vista;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVenda :
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.ExercicioOpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.ExercicioOpcaoVenda;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Fracionario:
                    to =  Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Fracionario;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Estruturado:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Estruturado;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Leilao:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Leilao;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Termo:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Termo;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.LeilaoNaoCotados:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.LeilaoNaoCotados;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Futuro:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.Futuro;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.VencimentoFuturo:
                    to =  Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.VencimentoFuturo;
                    break;
                case  Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.BOX:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.BOX;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.IntegralizacaoResgateCotas:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.IntegralizacaoResgateCotas;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.CotasETF:
                    to = Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.CotasETF;
                    break;
                //Nemir informou que não existe este mercado
                //2009-01-12 - RValadao
                //case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVendaCompra:
                //    to =  Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Carteira.Carteira.TipoMercado.OpcaoVendaCompra;
                //    break;
            }
        }

        public void TranslateEnum(Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado? from, out Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado to)
        {
            to = new Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado();

            switch (from)
            {
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Vista:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Vista;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.OpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.OpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.ExercicioOpcaoCompra:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoCompra;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.ExercicioOpcaoVenda:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.ExercicioOpcaoVenda;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Fracionario:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Fracionario;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Estruturado:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Estruturado;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Leilao:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Leilao;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Termo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Termo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.LeilaoNaoCotados:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.LeilaoNaoCotados;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.Futuro:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.Futuro;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.VencimentoFuturo:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.VencimentoFuturo;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.BOX:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.BOX;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.IntegralizacaoResgateCotas:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.IntegralizacaoResgateCotas;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.CotasETF:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.CotasETF;
                    break;
                //Nemir informou que não existe este mercado
                //2009-01-12 - RValadao
                //case Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.TipoMercado.OpcaoVendaCompra:
                //    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoMercado.OpcaoVendaCompra;
                //    break;
            }
        }



    }
}
